package com.example.ai.service;



import com.example.ai.entity.Order;
import com.example.ai.entity.TodayRevenue;
import com.example.ai.entity.item;

import java.util.List;

/**
 * 订单服务接口
 * 定义订单管理相关业务操作规范
 *
 * @author czwa
 */
public interface orderService {
    /**
     * 新增订单
     * 包含订单基本信息插入、库存扣减及订单商品关联记录
     *
     * @param order 订单实体对象
     */
    void addOrder(Order order);

    /**
     * 获取今日订单统计数据
     * 包括今日营收、订单总数、已完成订单数
     *
     * @return 今日营收统计对象
     */
    TodayRevenue getTodayOrder();

    /**
     * 获取未完成订单列表
     * 查询条件：状态为已支付的订单
     *
     * @return 未完成订单列表
     */
    List<Order> getUnfinishedOrder();

    /**
     * 更新订单状态为已完成
     *
     * @param id 订单ID
     */
    void updateOrder(Integer id);

    /**
     * 处理订单发货流程
     * 包括更新商品库存状态及订单状态为已发货
     *
     * @param id 订单ID
     */
    void updateOrderGood(int id);

    /**
     * 根据ID查询订单详情
     *
     * @param orderId 订单ID
     * @return 订单实体对象
     */
    Order getById(int orderId);

    /**
     * 自动下单功能
     * 包含商品存在性校验、库存充足性校验及订单创建全流程
     *
     * @param items 订单商品项数组
     * @return 下单结果提示（成功或失败原因）
     */
    String autoAddOrder(item[] items);
}